#pragma once

#include <float.h>

struct aabb
{
	float3 min,max;

	void init()
	{
		min.set(FLT_MAX,FLT_MAX,FLT_MAX);
		max=-min;
	}

	void extend(const float3& v)
	{
		setmin(min.x,v.x);
		setmin(min.y,v.y);
		setmin(min.z,v.z);
		setmax(max.x,v.x);
		setmax(max.y,v.y);
		setmax(max.z,v.z);
	}

	float3 center() const
	{
		return 0.5f*(min+max);
	}

	float3 halfextent() const
	{
		return 0.5f*(max-min);
	}

	float3 extent() const
	{
		return max-min;
	}
};